package sortedAlgorithmCollections;

/**
 * 插入排序 降序
 * @author le
 */
public class InsertSort {

    public static void main(String[] args) {

        // 待排序的数组
        int[] nums = {1, 56, 8, 9, 65, 88,10};

        // 注意i的初始值 应该设置为 1 ，也就是从数组的第二个元素开始
        for (int i = 1; i < nums.length; i++) {
            int preIndex = i - 1;
            int current = nums[i];

            // 主要的思想是 拿自己的当前的元素的值 和 当前元素向前的元素进行比较 向前遍历
            // 如果 当前元素的前面的元素 比 当前元素的值小 继续执行循环
            // 注意： 此代码 是 降序排列
            while(preIndex >= 0 && current < nums[preIndex]){

                // 数组元素的值后移
                nums[preIndex+1] = nums[preIndex];
                // 数组向前继续遍历
                preIndex--;

            }

            nums[preIndex+1] = current;
        }

        for (int num : nums) {
            System.out.println(num);
        }

    }
}
